home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / qbsvga.zip / FEATURE.ADV next >
Text File  |  1996-05-01  |  7KB  |  107 lines

  1.      This file describes what I'll call an "advanced feature" of QBSVGA.
  2. There's nothing actually all that advanced about it.  It just gives you a
  3. "backdoor method" of overriding the VESA bios mode that QBSVGA identifies
  4. as the one corresponding to the QB-type mode that you input to BSCREEN.
  5. The reason for providing this capability is because, when the mode-finding
  6. subroutine FINDVESA searches your VESA bios data area for the video mode
  7. with the screen resolution that you're asking for, it stops at the first
  8. such mode it finds.  This is fine if that mode works.  Unfortunately, it's
  9. possible for your VESA bios to report support for a mode when such support
  10. is somewhat faulty.  Other than a faulty bios, the most likely cause of
  11. this is that your video card has capability that your screen doesn't have,
  12. at least in that particular video mode.  Note that "video mode" here
  13. refers to a specific bios integer used to access a video state with a
  14. certain resolution and other attributes.  It does not refer to the
  15. resolution itself.  You may very well be able to achieve that resolution
  16. using some other video mode for which the support is not faulty.  But
  17. FINDVESA won't find that mode unless it's the first one it comes to.  It
  18. is also possible for your VESA bios to report that you only have hardware
  19. support for a mode (in which case QBSVGA can't use it) when in fact, your
  20. bios will communicate with your video system in this mode quite well.  In
  21. this latter case, QBSVGA wouldn't likely have any problem using this mode
  22. except that FINDVESA won't give it an opportunity to try.  The backdoor
  23. feature described here may solve problems caused by these and similar
  24. situations.  (Of course, in the last situation discussed, it's entirely
  25. possible to be in some in between state--some bios functions may work and
  26. some may not.  Consequences of this situation depend on what particular
  27. bios functions are affected.)
  28.  
  29.      If you know a particular bios mode integer will give you the
  30. resolution you want and you know your system provides acceptable support
  31. for it, you can use DOS' SET command to tell QBSVGA (i.e., subroutine
  32. BSCREEN) not to call FINDVESA and just use the bios mode of your choice.
  33. You do this by SETting up to 12 DOS environment variables, one for each of
  34. the 12 QB-type SVGA modes provided by QBSVGA, before running a program
  35. using the QBSVGA routines.  (You can save environment space by not defining
  36. such DOS variables for modes that you know you aren't going to need.)
  37. These environment variables establish a correlation between the QB-type
  38. mode and the bios mode integer that gives the resolution associated with
  39. that QB-type mode.  The name of each environment variable always contains 6
  40. characters and always begins with "MODE".  The fifth and sixth characters
  41. specify the QB-type mode (14 - 25) that you're establishing a correlation
  42. for.  Each environment variable is set equal to thet HEXADECIMAL bios mode
  43. that gives the resolution for the specified QB-type mode.  For example,
  44. let's say that you want an 800 x 600 x 16 screen mode (QB-type mode 15)
  45. but everytime QBSVGA tries to get this QB-type mode, you don't get results
  46. on the screen that you think are right--and you're sure it's because the
  47. video state isn't being set correctly.  The first thing to do is run VS
  48. using its option that allows you to graphically confirm mode support.
  49. (If you didn't read VS.TXT yet, now might be a good time.)  Welcome back.
  50. I hope I didn't do too bad of a job in VS.TXT explaining what to do with
  51. the VS program.  The advantage of running VS in its graphical confirmation
  52. mode is that it right then and there won't show you modes in its MODES.LST
  53. output file that your system (video card + screen) can't do.  Look in
  54. MODES.LST for the first bios mode that gives you your resolution.  Calling
  55. this integer "B", issue the following DOS command before running your
  56. program that uses QBSVGA:
  57.  
  58.  
  59.  
  60. SET MODE15=B
  61.  
  62. (Substitute the actual bios mode integer that gives you the 800 x 600 x 16
  63. resolution for "B".)  Don't put any spaces to the left of the equal sign
  64. in the SET command.  (Spaces immediately to the right are okay, but don't
  65. put them in the middle of B, i.e., if B = 6A, don't set MODE15 equal to
  66. "6 A".  Further, don't terminate your hexadecimal mode with an "h" (or
  67. "H").)  If QBSVGA works better now, it's apparent that FINDVESA was
  68. finding a bios mode that your screen couldn't do.  If your program doesn't
  69. work better, go back to MODES.LST and look for another bios mode that
  70. gives you the 800 x 600 x 16 resolution, reissue the above SET command,
  71. and then try your program again.  Repeat this process until you run out of
  72. modes to try or QBSVGA works.  (You should, by the way, be able to use
  73. supported modes with the same screen resolution but increased colors with
  74. no problem.)
  75.  
  76.      If the VS program indicates that you have hardware support for a mode
  77. you'd like to use, but no bios support, it would probably be worthwhile to
  78. set the appropriate MODE## variable equal to the bios hex mode integer for
  79. this mode and just see what happens.  If you don't see your graphics
  80. coming up when you expect it to, it's probably an indication that your
  81. system really can't do that mode.  (There's a good chance your system will
  82. be locked up--did your screen go blank or start behaving in some berserk
  83. manner?  You should reboot your system in this situation to get your video
  84. state out of that unsupported mode as soon as possible.  If your system
  85. isn't locked up and you can get back to a DOS prompt, but your screen
  86. still appears to be in some wierd state, try DOS' MODE 80 command (or
  87. MODE CO80, if your colors seem affected).)
  88.  
  89.      Most importantly, when you go to set MODE##, make sure you set it
  90. equal to the bios mode integer that gives you the resolution for "##" (and
  91. a mode that you at least have some reason to believe you have support for),
  92. not some other bios mode by mistake.  It's the value of the bios mode
  93. integer that determines what screen mode you get.  (QBSVGA sets various
  94. defaults based on "##" which are not necessarily compatible with non-
  95. corresponding bios modes.)   When you use this feature, the discussion in
  96. QBSVGA.BAS regarding BSCREEN's prompt for the bios mode in the situation in
  97. which FINDVESA cannot find a VESA mode does not apply.  (Once you use the
  98. SET MODE##= command to tell QBSVGA that you know a particular SVGA mode is
  99. supported, it doesn't matter whether you have VESA support at all.  However,
  100. if you specify a bios mode larger than FFh, QBSVGA will assume that you have
  101. VESA support when it determines how to make a screen mode change or how to
  102. detect the current video mode in effect.)  Further, you don't need to use VS
  103. necessarily to find what bios modes you have VESA support for.  You can use
  104. the SET MODE##= command no matter how you know that the bios mode works with
  105. your system.  (The only advantage of VS is that MODES.LST lists the modes in
  106. the order in which FINDVESA looks for them.)
  107.